<?php

namespace App\Http\Controllers;

use App\Http\Requests\PasswordRequest;
use Illuminate\Http\Request;
use Auth;
class PasswordController extends Controller
{
    //创建构造函数
    public function __construct()
    {
        //echo 'qqq';
        //因为构造函数优先于类中的方法先执行，所以我们在构造函数中调用框架自带的一个判断用户是否登录的中间件，如果登陆了 中间件会方形 如果没有登录 中间件会自动用户重定向去登录路由
        //如果想用系统的中间件，登录路由一定是/login路由
        //$this->middleware('auth');
        //调用自己创建的中间件
        $this->middleware('checkLogin');
        //在这里假设当前控制器中有10个方法，7个手中间件控制，3个不受中间件控制，我们就需要给middleware传递第二个参数
        //except是除了什么之外都受到中间件的控制
        //only是只有哪些方法受到中间件的控制

    }

    public function changePassword(){
        //加载修改密码模板
        return view('password');
    }

    //处理修改密码操作
    public function password(Request $request,PasswordRequest $passwordRequest){
        //获取post数据
        $post = $request->all();
        //dd($post);
        //获取当前用户的旧数据
        $user = Auth::user();
        $user->name = $post['name'];
        //判断密码是否填写，如果填写了密码，就将用户的密码修改
        if($post['password']){
            $user->password = bcrypt($post['password']);
            //将用户数据保存
            $user->save();
            //设置闪存信息并返回
            session()->flash('success','个人资料修改成功!');
            return redirect('/');
        }

    }
}
